Autogenerated HTML docs for v1.7.10-280-gaa39
diff --git a/RelNotes/1.7.11.txt b/RelNotes/1.7.11.txt index 7694203..5925312 100644 --- a/RelNotes/1.7.11.txt +++ b/RelNotes/1.7.11.txt
@@ -35,12 +35,22 @@ Foreign Interface + * "git p4" has been moved out of contrib/ area. Performance + * "git apply" had some memory leaks plugged. + + * Setting up a revision traversal with many starting points was + inefficient as these were placed in a date-order priority queue + one-by-one. Now they are collected in the queue unordered first, + and sorted immediately before getting used. Internal Implementation (please report possible regressions) + * "git rev-parse --show-prefix" used to emit nothing when run at the + top-level of the working tree, but now it gives a blank line. + * Minor memory leak during unpack_trees (hence "merge" and "checkout" to check out another branch) has been plugged. @@ -61,6 +71,23 @@ releases are contained in this release (see release notes to them for details). + * "git fetch" that recurses into submodules on demand did not check + if it needs to go into submodules when non branches (most notably, + tags) are fetched. + (merge a6801ad jl/maint-submodule-recurse-fetch later to maint). + + * "git blame" started missing quite a few changes from the origin + since we stopped using the diff minimalization by default in v1.7.2 + era. + (merge 059a500 jc/maint-blame-minimal later to maint). + + * "log -p --graph" used with "--stat" had a few formatting error. + (merge e2c5966 lp/maint-diff-three-dash-with-graph later to maint). + + * Giving "--continue" to a conflicted "rebase -i" session skipped a + commit that only results in changes to submodules. + (merge a6754cd jk/rebase-i-submodule-conflict-only later to maint). + * When PATH contains an unreadable directory, alias expansion code did not kick in, and failed with an error that said "git-subcmd" was not found.
diff --git a/cmds-foreignscminterface.txt b/cmds-foreignscminterface.txt index 1b88376..40b3bf6 100644 --- a/cmds-foreignscminterface.txt +++ b/cmds-foreignscminterface.txt
@@ -13,6 +13,9 @@ linkgit:git-imap-send[1]:: Send a collection of patches from stdin to an IMAP folder. +linkgit:git-p4[1]:: + Import from and submit to Perforce repositories. + linkgit:git-quiltimport[1]:: Applies a quilt patchset onto the current branch.
diff --git a/git-fast-import.html b/git-fast-import.html index c4fafc5..6442cdf 100644 --- a/git-fast-import.html +++ b/git-fast-import.html
@@ -731,9 +731,10 @@ </dt> <dd> <p> - Specify the file descriptor that will be written to - when the <tt>cat-blob</tt> command is encountered in the stream. - The default behaviour is to write to <tt>stdout</tt>. + Write responses to <tt>cat-blob</tt> and <tt>ls</tt> queries to the + file descriptor <fd> instead of <tt>stdout</tt>. Allows <tt>progress</tt> + output intended for the end-user to be separated from other + output. </p> </dd> <dt class="hdlist1"> @@ -1642,6 +1643,8 @@ <div class="paragraph"><p>This command can be used anywhere in the stream that comments are accepted. In particular, the <tt>cat-blob</tt> command can be used in the middle of a commit but not in the middle of a <tt>data</tt> command.</p></div> +<div class="paragraph"><p>See “Responses To Commands” below for details about how to read +this output safely.</p></div> <h3 id="_tt_ls_tt"><tt>ls</tt></h3><div style="clear:left"></div> <div class="paragraph"><p>Prints information about the object at a path to a file descriptor previously arranged with the <tt>--cat-blob-fd</tt> argument. This allows @@ -1702,6 +1705,8 @@ <pre><tt>missing SP <path> LF</tt></pre> </div></div> </div></div> +<div class="paragraph"><p>See “Responses To Commands” below for details about how to read +this output safely.</p></div> <h3 id="_tt_feature_tt"><tt>feature</tt></h3><div style="clear:left"></div> <div class="paragraph"><p>Require that fast-import supports the specified feature, or abort if it does not.</p></div> @@ -1840,6 +1845,35 @@ in use, the <tt>done</tt> command is mandatory and marks the end of the stream.</p></div> </div> +<h2 id="_responses_to_commands">Responses To Commands</h2> +<div class="sectionbody"> +<div class="paragraph"><p>New objects written by fast-import are not available immediately. +Most fast-import commands have no visible effect until the next +checkpoint (or completion). The frontend can send commands to +fill fast-import’s input pipe without worrying about how quickly +they will take effect, which improves performance by simplifying +scheduling.</p></div> +<div class="paragraph"><p>For some frontends, though, it is useful to be able to read back +data from the current repository as it is being updated (for +example when the source material describes objects in terms of +patches to be applied to previously imported objects). This can +be accomplished by connecting the frontend and fast-import via +bidirectional pipes:</p></div> +<div class="exampleblock"> +<div class="exampleblock-content"> +<div class="literalblock"> +<div class="content"> +<pre><tt>mkfifo fast-import-output +frontend <fast-import-output | +git fast-import >fast-import-output</tt></pre> +</div></div> +</div></div> +<div class="paragraph"><p>A frontend set up this way can use <tt>progress</tt>, <tt>ls</tt>, and <tt>cat-blob</tt> +commands to read information from the import in progress.</p></div> +<div class="paragraph"><p>To avoid deadlock, such frontends must completely consume any +pending output from <tt>progress</tt>, <tt>ls</tt>, and <tt>cat-blob</tt> before +performing writes to fast-import that might block.</p></div> +</div> <h2 id="_crash_reports">Crash Reports</h2> <div class="sectionbody"> <div class="paragraph"><p>If fast-import is supplied invalid input it will terminate with a @@ -2126,7 +2160,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2011-11-15 13:45:02 PDT +Last updated 2012-04-23 13:55:31 PDT </div> </div> </body>
diff --git a/git-fast-import.txt b/git-fast-import.txt index ec6ef31..b52dca5 100644 --- a/git-fast-import.txt +++ b/git-fast-import.txt
@@ -98,9 +98,10 @@ options. --cat-blob-fd=<fd>:: - Specify the file descriptor that will be written to - when the `cat-blob` command is encountered in the stream. - The default behaviour is to write to `stdout`. + Write responses to `cat-blob` and `ls` queries to the + file descriptor <fd> instead of `stdout`. Allows `progress` + output intended for the end-user to be separated from other + output. --done:: Require a `done` command at the end of the stream. @@ -942,6 +943,9 @@ accepted. In particular, the `cat-blob` command can be used in the middle of a commit but not in the middle of a `data` command. +See ``Responses To Commands'' below for details about how to read +this output safely. + `ls` ~~~~ Prints information about the object at a path to a file descriptor @@ -991,6 +995,9 @@ missing SP <path> LF ==== +See ``Responses To Commands'' below for details about how to read +this output safely. + `feature` ~~~~~~~~~ Require that fast-import supports the specified feature, or abort if @@ -1079,6 +1086,35 @@ in use, the `done` command is mandatory and marks the end of the stream. +Responses To Commands +--------------------- +New objects written by fast-import are not available immediately. +Most fast-import commands have no visible effect until the next +checkpoint (or completion). The frontend can send commands to +fill fast-import's input pipe without worrying about how quickly +they will take effect, which improves performance by simplifying +scheduling. + +For some frontends, though, it is useful to be able to read back +data from the current repository as it is being updated (for +example when the source material describes objects in terms of +patches to be applied to previously imported objects). This can +be accomplished by connecting the frontend and fast-import via +bidirectional pipes: + +==== + mkfifo fast-import-output + frontend <fast-import-output | + git fast-import >fast-import-output +==== + +A frontend set up this way can use `progress`, `ls`, and `cat-blob` +commands to read information from the import in progress. + +To avoid deadlock, such frontends must completely consume any +pending output from `progress`, `ls`, and `cat-blob` before +performing writes to fast-import that might block. + Crash Reports ------------- If fast-import is supplied invalid input it will terminate with a
diff --git a/git-p4.html b/git-p4.html index b498ec6..71b5c45 100644 --- a/git-p4.html +++ b/git-p4.html
@@ -607,16 +607,6 @@ <div class="ulist"><ul> <li> <p> -Create an alias for <em>git p4</em>, using the full path to the <em>git-p4</em> - script if needed: -</p> -<div class="listingblock"> -<div class="content"> -<pre><tt>$ git config --global alias.p4 '!git-p4'</tt></pre> -</div></div> -</li> -<li> -<p> Clone a repository: </p> <div class="listingblock"> @@ -1010,17 +1000,17 @@ configuration file. This allows future <em>git p4 submit</em> commands to work properly; the submit command looks only at the variable and does not have a command-line option.</p></div> -<div class="paragraph"><p>The full syntax for a p4 view is documented in <em>p4 help views</em>. Git-p4 +<div class="paragraph"><p>The full syntax for a p4 view is documented in <em>p4 help views</em>. <em>Git p4</em> knows only a subset of the view syntax. It understands multi-line mappings, overlays with <em>+</em>, exclusions with <em>-</em> and double-quotes -around whitespace. Of the possible wildcards, git-p4 only handles -<em>…</em>, and only when it is at the end of the path. Git-p4 will complain +around whitespace. Of the possible wildcards, <em>git p4</em> only handles +<em>…</em>, and only when it is at the end of the path. <em>Git p4</em> will complain if it encounters an unhandled wildcard.</p></div> <div class="paragraph"><p>Bugs in the implementation of overlap mappings exist. If multiple depot paths map through overlays to the same location in the repository, -git-p4 can choose the wrong one. This is hard to solve without -dedicating a client spec just for git-p4.</p></div> -<div class="paragraph"><p>The name of the client can be given to git-p4 in multiple ways. The +<em>git p4</em> can choose the wrong one. This is hard to solve without +dedicating a client spec just for <em>git p4</em>.</p></div> +<div class="paragraph"><p>The name of the client can be given to <em>git p4</em> in multiple ways. The variable <em>git-p4.client</em> takes precedence if it exists. Otherwise, normal p4 mechanisms of determining the client are used: environment variable P4CLIENT, a file referenced by P4CONFIG, or the local host name.</p></div> @@ -1316,7 +1306,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2012-02-26 18:21:43 PDT +Last updated 2012-04-23 13:55:31 PDT </div> </div> </body>
diff --git a/git-p4.txt b/git-p4.txt index b7c7929..3fac413 100644 --- a/git-p4.txt +++ b/git-p4.txt
@@ -31,13 +31,6 @@ EXAMPLE ------- -* Create an alias for 'git p4', using the full path to the 'git-p4' - script if needed: -+ ------------- -$ git config --global alias.p4 '!git-p4' ------------- - * Clone a repository: + ------------ @@ -311,19 +304,19 @@ work properly; the submit command looks only at the variable and does not have a command-line option. -The full syntax for a p4 view is documented in 'p4 help views'. Git-p4 +The full syntax for a p4 view is documented in 'p4 help views'. 'Git p4' knows only a subset of the view syntax. It understands multi-line mappings, overlays with '+', exclusions with '-' and double-quotes -around whitespace. Of the possible wildcards, git-p4 only handles -'...', and only when it is at the end of the path. Git-p4 will complain +around whitespace. Of the possible wildcards, 'git p4' only handles +'...', and only when it is at the end of the path. 'Git p4' will complain if it encounters an unhandled wildcard. Bugs in the implementation of overlap mappings exist. If multiple depot paths map through overlays to the same location in the repository, -git-p4 can choose the wrong one. This is hard to solve without -dedicating a client spec just for git-p4. +'git p4' can choose the wrong one. This is hard to solve without +dedicating a client spec just for 'git p4'. -The name of the client can be given to git-p4 in multiple ways. The +The name of the client can be given to 'git p4' in multiple ways. The variable 'git-p4.client' takes precedence if it exists. Otherwise, normal p4 mechanisms of determining the client are used: environment variable P4CLIENT, a file referenced by P4CONFIG, or the local host name.
diff --git a/git-var.html b/git-var.html index ac14adc..05670b8 100644 --- a/git-var.html +++ b/git-var.html
@@ -644,7 +644,8 @@ <tt>$SOME_ENVIRONMENT_VARIABLE</tt>, <tt>"C:\Program Files\Vim\gvim.exe" --nofork</tt>. The order of preference is the <tt>$GIT_EDITOR</tt> environment variable, then <tt>core.editor</tt> configuration, then - <tt>$VISUAL</tt>, then <tt>$EDITOR</tt>, and then finally <em>vi</em>. + <tt>$VISUAL</tt>, then <tt>$EDITOR</tt>, and then the default chosen at compile + time, which is usually <em>vi</em>. </p> </dd> <dt class="hdlist1"> @@ -655,7 +656,8 @@ Text viewer for use by git commands (e.g., <em>less</em>). The value is meant to be interpreted by the shell. The order of preference is the <tt>$GIT_PAGER</tt> environment variable, then <tt>core.pager</tt> - configuration, then <tt>$PAGER</tt>, and then finally <em>less</em>. + configuration, then <tt>$PAGER</tt>, and then the default chosen at + compile time (usually <em>less</em>). </p> </dd> </dl></div> @@ -703,7 +705,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2011-11-15 13:45:02 PDT +Last updated 2012-04-23 13:55:31 PDT </div> </div> </body>
diff --git a/git-var.txt b/git-var.txt index 5317cc2..988a323 100644 --- a/git-var.txt +++ b/git-var.txt
@@ -43,13 +43,21 @@ `$SOME_ENVIRONMENT_VARIABLE`, `"C:\Program Files\Vim\gvim.exe" --nofork`. The order of preference is the `$GIT_EDITOR` environment variable, then `core.editor` configuration, then - `$VISUAL`, then `$EDITOR`, and then finally 'vi'. + `$VISUAL`, then `$EDITOR`, and then the default chosen at compile + time, which is usually 'vi'. +ifdef::git-default-editor[] + The build you are using chose '{git-default-editor}' as the default. +endif::git-default-editor[] GIT_PAGER:: Text viewer for use by git commands (e.g., 'less'). The value is meant to be interpreted by the shell. The order of preference is the `$GIT_PAGER` environment variable, then `core.pager` - configuration, then `$PAGER`, and then finally 'less'. + configuration, then `$PAGER`, and then the default chosen at + compile time (usually 'less'). +ifdef::git-default-pager[] + The build you are using chose '{git-default-pager}' as the default. +endif::git-default-pager[] Diagnostics -----------
diff --git a/git.html b/git.html index 78a791f..aada2b3 100644 --- a/git.html +++ b/git.html
@@ -1372,6 +1372,14 @@ </p> </dd> <dt class="hdlist1"> +<a href="git-p4.html">git-p4(1)</a> +</dt> +<dd> +<p> + Import from and submit to Perforce repositories. +</p> +</dd> +<dt class="hdlist1"> <a href="git-quiltimport.html">git-quiltimport(1)</a> </dt> <dd> @@ -2417,7 +2425,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2012-04-06 10:48:59 PDT +Last updated 2012-04-20 12:42:45 PDT </div> </div> </body>